use std::io::*;
use std::string::*;

fn main() {
    let stdin = stdin();
    let mut lines = stdin.lock().lines().map(|line| line.unwrap());

    let a_to_z: String = "abcdefghijklmnopqrstuvwxyz".to_string();
    let s: String = lines.next().unwrap().trim().parse().unwrap(); // 读取测试数据组数
    let blue = s.chars().filter(|ch| *ch == '0').count();
    let red = s.chars().filter(|ch| *ch == '1').count();

    // 删除初始未使用的赋值
    // 处理 blue 或 red 为 0 的情况
    if blue == 0 || red == 0 {
        let a = s.len() / 26;
        let b = s.len() % 26;

        println!(
            "{}",
            (0..a).flat_map(|_| a_to_z.chars()).collect::<String>() + &a_to_z[..b]
        );
        return;
    }

    // 处理 blue 小于 red 的情况
    let (a, b) = if blue < red {
        let a = (blue as f64 / s.len() as f64 * 26.0).ceil() as usize;
        let b = 26 - a;
        (a, b)
    } else {
        let b = (red as f64 / s.len() as f64 * 26.0).ceil() as usize;
        let a = 26 - b;
        (a, b)
    };

    let (mut i, mut j): (usize, usize) = (0, 0);
    let mut res = String::new();

    for ch in s.chars() {
        if ch == '0' {
            res = res + &(a_to_z.chars().nth(0 + (i % a)).unwrap().to_string());
            i += 1;
        } else {
            res = res + &(a_to_z.chars().nth(a + (j % b)).unwrap().to_string());
            j += 1;
        }
    }
    println!("{}", res);
}
